package com.home_school_platform.dao;

import com.home_school_platform.entity.pojo.SchoolAccout;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @authoor Bilysen
 * @date 2021/3/12 - 10:17
 **/
@Mapper
@Repository
public interface SchoolAccoutDao {
    /**
     * 增加学校账户
     * @param schoolAccout 学校账户对象
     * @return 所添加的行数
     */
    Integer insertSchoolAccount(SchoolAccout schoolAccout);

    /**
     * 删除指定学校账户
     * @param id 主键id
     * @return 所删除的行数
     */
    Integer deleteSchoolAccount(Integer id);

    /**
     * 更新相关的学校账户
     * @param schoolAccout 学校账户对象
     * @return 所更新的行数
     */
    Integer updateSchoolAccount(SchoolAccout schoolAccout);

    /**
     * 查询指定的学校账户
     * @param accout 学校账户
     * @return SchoolAccout 对象
     */
    SchoolAccout getSchoolAccount(String accout);

    /**
     * 查询所有的学校账户并分页
     * @param currentPage 第几个账户
     * @param pageSize 页面大小
     * @return list
     */
    List<SchoolAccout> listSchoolAccount(@Param("currentPage") Integer currentPage,
                                         @Param("pageSize") Integer pageSize);

    /**
     * 统计有多少个学校账户
     * @return 学校账户个数
     */
    Integer countListSchoolAccount();

    /**
     * 根据学校的名字模糊查询学校账户信息
     * @param currentPage 第几个学校账户
     * @param pageSize 页面大小
     * @param schoolName 模糊查询的学校名字
     * @return list
     */
    List<SchoolAccout> listSchoolAccountLikeSchoolName(@Param("currentPage") Integer currentPage,
                                                       @Param("pageSize") Integer pageSize,
                                                       @Param("schoolName") String schoolName);

    /**
     * 统计符合模糊查询学校的个数
     * @param schoolName  模糊查询的学校名字
     * @return 符合条件的个数
     */
    Integer countListSchoolAccountLikeSchoolName(@Param("schoolName") String schoolName);
}
